package com.runewbie.algorithm.math;

/**
 * @author: li_jian
 * @version: 1.0
 * @date: 2020/6/30 23:26
 * @description： LeetCode 319. Bulb Switcher
 * <p>
 * 一开始有n个灯泡关闭。第1轮，打开所有的灯泡；第2轮，每两个灯泡关闭一次；第3轮，每三个灯泡切换一次开关（如过打开则关闭，如果关闭则
 * 打开）；第n轮，只切换最后一个灯泡的开关。求n轮过后还有多少个灯亮着。
 * <p>
 * 示例：
 * 输入：3
 * 输出：1
 * 解释：状态0表示灯泡关闭，1表示开启。
 * 初始时，灯泡状态[0 0 0]
 * 第1轮后，灯泡状态[1 1 1]
 * 第2轮后，灯泡状态[1 0 1]
 * 第3轮后，灯泡状态[1 0 0]
 */
public class BulbSwitcher {

    public static int bulbSwitcher(int n) {
        if (n < 2) {
            return n;
        }

        return (int) Math.sqrt(n);
    }

    public static void main(String[] args) {
        System.out.println(bulbSwitcher(9));
    }
}
